Fox's Git Mirrors
Commit 4b4ee7ae7ad525b978e5c44ff164397d44b6d2c3
Parents : 60efc56
Author : Ahmet Inan <inan@aicodix.de>
Date : 2024-02-09T09:20:32+01:00
print frame error rate
Changes
2 files changed, 24 insertions(+), 4 deletions(-)
Diff
diff --git a/tests/osd_regression_test.cc b/tests/osd_regression_test.cc
index 1a6eb40..a3def17 100644
--- a/tests/osd_regression_test.cc
+++ b/tests/osd_regression_test.cc
@@ -82,6 +82,7 @@ int main()
int quantization_erasures = 0;
int uncorrected_errors = 0;
int ambiguity_erasures = 0;
+ int frame_errors = 0;
int bchdec_errors = 0;
for (int l = 0; l < loops; ++l) {
for (int i = 0; i < KW; ++i)
@@ -121,8 +122,15 @@ int main()
quantization_erasures += !noisy[i];
for (int i = 0; i < N; ++i)
uncorrected_errors += CODE::get_be_bit(decoded, i) != CODE::get_be_bit(codeword, i);
- if (!unique)
+ if (unique) {
+ bool error = false;
+ for (int i = 0; i < N; ++i)
+ error |= CODE::get_be_bit(decoded, i) != CODE::get_be_bit(codeword, i);
+ frame_errors += error;
+ } else {
ambiguity_erasures += N;
+ ++frame_errors;
+ }
for (int i = 0; i < K; ++i)
CODE::set_be_bit(message, i, noisy[i] < 0);
@@ -141,6 +149,7 @@ int main()
bchdec_errors += CODE::get_be_bit(parity, i-K) != CODE::get_be_bit(codeword, i);
}
+ double frame_error_rate = (double)frame_errors / (double)loops;
double bit_error_rate = (double)uncorrected_errors / (double)(N * loops);
if (!uncorrected_errors && !ambiguity_erasures)
min_SNR = std::min(min_SNR, SNR);
@@ -159,10 +168,11 @@ int main()
std::cerr << quantization_erasures << " erasures caused by quantization." << std::endl;
std::cerr << uncorrected_errors << " errors uncorrected." << std::endl;
std::cerr << ambiguity_erasures << " ambiguity erasures." << std::endl;
+ std::cerr << frame_error_rate << " frame error rate." << std::endl;
std::cerr << bit_error_rate << " bit error rate." << std::endl;
std::cerr << bchdec_ber << " BCH decoder bit error rate." << std::endl;
} else {
- std::cout << SNR << " " << bit_error_rate << " " << bchdec_ber << " " << EbN0 << std::endl;
+ std::cout << SNR << " " << frame_error_rate << " " << bit_error_rate << " " << bchdec_ber << " " << EbN0 << std::endl;
}
}
std::cerr << "QEF at: " << min_SNR << " SNR" << std::endl;
diff --git a/tests/osld_regression_test.cc b/tests/osld_regression_test.cc
index aed2cd5..598513c 100644
--- a/tests/osld_regression_test.cc
+++ b/tests/osld_regression_test.cc
@@ -85,6 +85,7 @@ int main()
int quantization_erasures = 0;
int uncorrected_errors = 0;
int ambiguity_erasures = 0;
+ int frame_errors = 0;
int bchdec_errors = 0;
for (int l = 0; l < loops; ++l) {
for (int i = 0; i < KW; ++i)
@@ -139,8 +140,15 @@ int main()
quantization_erasures += !noisy[i];
for (int i = 0; i < N; ++i)
uncorrected_errors += CODE::get_be_bit(decoded, i) != CODE::get_be_bit(codeword, i);
- if (!unique)
+ if (unique) {
+ bool error = false;
+ for (int i = 0; i < N; ++i)
+ error |= CODE::get_be_bit(decoded, i) != CODE::get_be_bit(codeword, i);
+ frame_errors += error;
+ } else {
ambiguity_erasures += N;
+ ++frame_errors;
+ }
for (int i = 0; i < K; ++i)
CODE::set_be_bit(message, i, noisy[i] < 0);
@@ -159,6 +167,7 @@ int main()
bchdec_errors += CODE::get_be_bit(parity, i-K) != CODE::get_be_bit(codeword, i);
}
+ double frame_error_rate = (double)frame_errors / (double)loops;
double bit_error_rate = (double)uncorrected_errors / (double)(N * loops);
if (!uncorrected_errors && !ambiguity_erasures)
min_SNR = std::min(min_SNR, SNR);
@@ -177,10 +186,11 @@ int main()
std::cerr << quantization_erasures << " erasures caused by quantization." << std::endl;
std::cerr << uncorrected_errors << " errors uncorrected." << std::endl;
std::cerr << ambiguity_erasures << " ambiguity erasures." << std::endl;
+ std::cerr << frame_error_rate << " frame error rate." << std::endl;
std::cerr << bit_error_rate << " bit error rate." << std::endl;
std::cerr << bchdec_ber << " BCH decoder bit error rate." << std::endl;
} else {
- std::cout << SNR << " " << bit_error_rate << " " << bchdec_ber << " " << EbN0 << std::endl;
+ std::cout << SNR << " " << frame_error_rate << " " << bit_error_rate << " " << bchdec_ber << " " << EbN0 << std::endl;
}
}
std::cerr << "QEF at: " << min_SNR << " SNR" << std::endl;
Served by rngit 1.4.1 - Generated in 0.05s